package com.dhcc.bpm.modules.scf.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 车辆信息表实体类
 */
@Data
@TableName("scf_truck_info")
public class ScfTruckInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "ROW_ID", type = IdType.INPUT)
    private String rowId;

    /**
     * 车牌号码（唯一索引）
     */
    @TableField("TRUCK_NUM")
    @ExcelProperty("车牌号码")
    private String truckNum;

    /**
     * 车牌颜色编号
     */
    @TableField("TRUCK_COLOUR_NUM")
    @ExcelProperty("车牌颜色")
    private String truckColourNum;

    /**
     * 机动车所有人
     */
    @TableField("OWNER")
    @ExcelProperty("机动车所有人")
    private String owner;

    /**
     * 车辆类型-加字典
     */
    @TableField("TRUCK_TYPE")
    @ExcelProperty("车辆类型")
    private String truckType;

    /**
     * 使用性质-加字典
     */
    @TableField("`USE`")
    @ExcelProperty("使用性质")
    private String use;

    /**
     * 品牌型号
     */
    @TableField("TRUCK_BRAND_KIND")
    @ExcelProperty("品牌型号")
    private String truckBrandKind;

    /**
     * 车辆识别代码
     */
    @TableField("TRUCK_VIN")
    @ExcelProperty("车辆识别代号")
    private String truckVin;

    /**
     * 发动机号
     */
    @TableField("ENGINE_NUM")
    @ExcelProperty("发动机号码")
    private String engineNum;

    /**
     * 强制报废日期止
     */
    @TableField("SCRAP_DATE")
    @ExcelProperty("强制报废期止")
    private String scrapDate;

    /**
     * 行驶证注册日期
     */
    @TableField("REGISTRATION_DATE")
    @ExcelProperty("行驶证注册日期")
    private String registrationDate;

    /**
     * 行驶证发证日期
     */
    @TableField("APPROVED_DATE")
    @ExcelProperty("行驶证发证日期")
    private String approvedDate;

    /**
     * 检验有效期至
     */
    @TableField("EXPIRATION_DATE")
    @ExcelProperty("检验有效期至")
    private String expirationDate;

    /**
     * 总重量
     */
    @TableField("TOTAL_WEIGHT")
    @ExcelProperty("总质量(kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal totalWeight;

    /**
     * 空车(整备)重量
     */
    @TableField("EMPTY_WEIGHT")
    @ExcelProperty("整备质量(kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal emptyWeight;

    /**
     * 核定载重量
     */
    @TableField("LOAD_CAPACITY")
    @ExcelProperty("核定载重量(kg）")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal loadCapacity;

    /**
     * 行驶证发证机关
     */
    @TableField("AGENCY")
    @ExcelProperty("行驶证发证机关")
    private String agency;

    /**
     * 录入人
     */
    @TableField("RECORDER")
    private String recorder;

    /**
     * 录入日期
     */
    @TableField("RECORD_DATE")
    private String recordDate;

    /**
     * 录入时间
     */
    @TableField("RECORD_TIME")
    private String recordTime;


    @TableField("ORG_CODE")
    @ExcelProperty("所属公司编码")
    private String orgCode;
}
